﻿
Lafterinvoke:
	addq	$208, %rsp
	addq	%r12, %rsp
	movq	-8(%rbp), %r12
	popq	%rbp
	retq
Lcatchhandler:
	cmpl	$1, %edx
	movq	%rax, %rdi
	jne	Lnomatchexception

	# check if xamarin_marshal_objectivec_exception_mode == disable, if so, just don't handle the exception
	leal	_xamarin_marshal_objectivec_exception_mode(%rip), %edx
	cmpl	$4, %edx
	je	Lnomatchexception

	callq	_objc_begin_catch
Lcatchbegin:
	movq	%rax, %rdi
	callq	_xamarin_process_nsexception
Lcatchend:
	callq	_objc_end_catch
	jmp	Lafterinvoke
Lcatchcatchhandler:
	callq	_objc_end_catch
Lnomatchexception:
	callq	__Unwind_Resume
Lfunc_end2:
	.cfi_endproc

# exception table
	.section	__TEXT,__gcc_except_tab
	.align	2
GCC_except_table2:
Lexception2:
	.byte	255                     ## @LPStart Encoding = omit
	.byte	155                     ## @TType Encoding = indirect pcrel sdata4
	.asciz	"\274"                  ## @TType base offset
	.byte	3                       ## Call site Encoding = udata4
	.byte	52                      ## Call site table length
Lset0 = Lbeforeinvoke-Lfunc_begin2              ## >> Call Site 1 <<
	.long	Lset0
Lset1 = Lafterinvoke-Lbeforeinvoke                     ##   Call between Lbeforeinvoke and Lafterinvoke
	.long	Lset1
Lset2 = Lcatchhandler-Lfunc_begin2              ##     jumps to Lcatchhandler
	.long	Lset2
	.byte	1                       ##   On action: 1
Lset3 = Lafterinvoke-Lfunc_begin2              ## >> Call Site 2 <<
	.long	Lset3
Lset4 = Lcatchbegin-Lafterinvoke                     ##   Call between Lafterinvoke and Lcatchbegin
	.long	Lset4
	.long	0                       ##     has no landing pad
	.byte	0                       ##   On action: cleanup
Lset5 = Lcatchbegin-Lfunc_begin2              ## >> Call Site 3 <<
	.long	Lset5
Lset6 = Lcatchend-Lcatchbegin                    ##   Call between Lcatchbegin and Lcatchend
	.long	Lset6
Lset7 = Lcatchcatchhandler-Lfunc_begin2             ##     jumps to Lcatchcatchhandler
	.long	Lset7
	.byte	0                       ##   On action: cleanup
Lset8 = Lcatchend-Lfunc_begin2             ## >> Call Site 4 <<
	.long	Lset8
Lset9 = Lfunc_end2-Lcatchend               ##   Call between Lcatchend and Lfunc_end2
	.long	Lset9
	.long	0                       ##     has no landing pad
	.byte	0                       ##   On action: cleanup
	.byte	1                       ## >> Action Record 1 <<
                                        ##   Catch TypeInfo 1
	.byte	0                       ##   No further actions
                                        ## >> Catch TypeInfos <<
	.long	_OBJC_EHTYPE_$_NSException@GOTPCREL+4 ## TypeInfo 1
	.align	2
